<template>
    <div>
        <navigation-bar>
            <div class="searchContent">
                <el-input v-model="roleName" placeholder="请输入角色名称" size="mini" style="width: 150px; margin-right: 10px"></el-input>
                <el-input v-model="userName" placeholder="请输入姓名/登录名" size="mini" style="width: 150px; margin-right: 10px"></el-input>
                <custom-button type="search" style="margin-right: 10px" @searchClick="searchClick"></custom-button>
                <custom-button type="reset" style="margin-right: 10px" @resetClick="resetClick"></custom-button>
                <custom-button type="add" style="margin-right: 10px" @addClick="addClick"></custom-button>
                <custom-button type="custom" title="重置密码" icon="el-icon-edit" style="margin-right: 10px" @customClick="customClick()"></custom-button>
            </div>
        </navigation-bar>
        <table-index
            :dataSource="dataSource"
            :tableColumns="tableColumns"
            :btnList="btnList"
            :pageSize="pageSize"
            :pageCount="pageCount"
            :pageNo="pageNo"
            @pageChange="pageChange"
            @editRow="editRow"
            @viewRow="viewRow"
            @deleteRow="deleteRow"
            selection
            @handleSelectionChange="handleSelectionChange"
        ></table-index>

        <div v-if="dialogShow">
            <custom-dialog :title="dialogTitle" size="large" @dialogClose="dialogClose">
                <form-index :formConfig="formConfig" @submit="submit" :type="type" @formInputChange="formInputChange" ref="form">
                    <!--  <div>这里还可以插入其它内容进行拓展</div> -->
                </form-index>
            </custom-dialog>
        </div>
    </div>
</template>

<script>
import {userManageForm} from "@/assets/form/managementCenter/systemManage/userManage.js"
import customDialog from "@/components/customComponents/customDialog"
import customButton from "@/components/customComponents/customForm/customButton"
import formIndex from "@/components/customComponents/customForm/formIndex"
import tableIndex from "@/components/customComponents/customeTable/tableIndex"
import navigationBar from "@/components/customComponents/managementCenter/navigationBar"
import {AjaxCommon} from "@/libs/apiCommon"
// import {CardId} from "@/libs/cardId"
import {PopupCommon} from "@/libs/popupCommon"
import {SessionCommon} from "@/libs/sessionCommon"
import {Utility} from "@/libs/utility"
import {userList} from "@/mockData/systemManage.js"
export default {
    components: {
        navigationBar,
        customButton,
        tableIndex,
        customDialog,
        formIndex
    },
    data() {
        return {
            selectDeviceList: [],
            userName: "",
            roleName: "",
            device_type: "",
            device_typeList: Utility.getDictList("device_type"),
            status: "",
            statusList: Utility.getDictList("status"),
            // table 相关参数  begin
            dataSource: userList,
            tableColumns: [
                {
                    prop: "name",
                    label: "姓名"
                },
                {
                    prop: "loginName",
                    label: "登录名"
                },
                {
                    prop: "loginName1",
                    label: "上级用户"
                },
                {
                    prop: "loginName1",
                    label: "所属部门"
                },
                {
                    prop: "sex",
                    label: "性别",
                    dictName: "sex"
                },
                {
                    prop: "tel",
                    label: "联系电话"
                    // dictName: "departType"
                },
                {
                    prop: "email",
                    label: "邮箱"
                    // dictName: "departXz"
                },
                {
                    prop: "address",
                    label: "地址"
                },
                {
                    prop: "isNormal",
                    label: "是否启用",
                    dictName: "trueOrFalse"
                },
                {
                    prop: "lastLoginTime",
                    label: "最后登录时间"
                    // dictName: "trueOrFalse"
                },
                {
                    prop: "lastLoginPerson",
                    label: "最后操作人"
                    // dictName: "trueOrFalse"
                },
                {
                    prop: "lastOprTime",
                    label: "最后操作时间"
                    // dictName: "trueOrFalse"
                },
                {
                    prop: "roleName",
                    label: "所属角色"
                    // dictName: "trueOrFalse"
                },
                {
                    prop: "zcly",
                    label: "注册来源"
                    // dictName: "trueOrFalse"
                }
            ],
            btnList: ["edit", "view", "delete"],
            pageSize: 20,
            pageCount: 2,
            pageNo: 1,
            // table 相关参数  end

            // 弹窗是否显示
            dialogShow: false,
            // 弹窗标题 (新增修改不同)
            dialogTitle: "",

            // form的配置信息
            formConfig: userManageForm,
            type: "add"
        }
    },

    methods: {
        customClick() {
            PopupCommon.notify("success", "重置成功")
        },

        handleSelectionChange(d) {
            this.selectDeviceList = d
        },
        formInputChange(e) {
            console.log(e)
            // if (e.filedName == "idCard") {
            //     const data = CardId.getInfoByCardId(e.value)
            //     if (data) {
            //         let newData = e.allData
            //         newData["birthday"] = data.birthday
            //         newData["sex"] = data.sex
            //         this.$refs.form.changeFormValue(newData)
            //     }
            // }
        },
        submit(d) {
            let self = this
            console.log(d)
            PopupCommon.notify("success", "操作成功")
            if (d.id) {
                AjaxCommon("/ccdc/cfg/device/device/edit", "post", d)
                    .then((res) => {
                        if (res.data.code == 200) {
                            PopupCommon.notify("success", "操作成功")
                            self.initPage()
                            self.dialogClose()
                        } else {
                            PopupCommon.notify("error", res.data.message)
                        }
                    })
                    .catch((err) => {
                        PopupCommon.notify("error", err.message)
                    })
            } else {
                delete d.Id
                AjaxCommon("/api/User/AddUser", "post", d)
                    .then((res) => {
                        if (res.data.code == 200) {
                            PopupCommon.notify("success", "操作成功")
                            self.initPage()
                            self.dialogClose()
                        } else {
                            PopupCommon.notify("error", res.data.message)
                        }
                    })
                    .catch((err) => {
                        PopupCommon.notify("error", err.message)
                    })
            }
        },
        dialogClose() {
            this.dialogShow = false
        },
        searchClick() {
            this.pageNo = 1
            this.initPage()
        },
        resetClick() {
            this.userName = ""
            this.status = ""
            this.device_type = ""
        },
        addClick() {
            let formConfigItem = this.formConfig
            formConfigItem.map((t) => {
                Object.keys(t).map((res) => {
                    if (res == "fieldName") {
                        t.filedValue = ""
                    }
                })
            })
            this.formConfig = formConfigItem
            this.type = "add"
            this.dialogShow = true
            this.dialogTitle = "新增" + JSON.parse(SessionCommon.getCurrentMenuInfo()).title
        },
        // 分页点击事件
        pageChange(p) {
            this.pageNo = p
            this.initPage()
        },
        editRow(d) {
            this.type = "edit"
            let formConfigItem = this.formConfig
            formConfigItem.map((t) => {
                Object.keys(t).map((res) => {
                    if (res == "fieldName") {
                        t.filedValue = d.data[t[res]]
                    }
                })
            })
            this.formConfig = formConfigItem
            this.dialogShow = true
            this.dialogTitle = "编辑" + JSON.parse(SessionCommon.getCurrentMenuInfo()).title
        },
        viewRow(d) {
            this.type = "look"
            let formConfigItem = this.formConfig
            formConfigItem.map((t) => {
                Object.keys(t).map((res) => {
                    if (res == "fieldName") {
                        t.filedValue = d.data[t[res]]
                    }
                })
            })
            this.formConfig = formConfigItem
            this.dialogShow = true
            this.dialogTitle = "查看" + JSON.parse(SessionCommon.getCurrentMenuInfo()).title
        },
        deleteRow(d) {
            console.log(d)
            // const id = d.data.id
            PopupCommon.notify("success", "删除成功")
            // let self = this
            // AjaxCommon("/ccdc/cfg/device/device/delete?id=" + id, "delete", {
            //     optReason: d.optReason
            // }).then((res) => {
            //     console.log(res, "res...............")
            //     if (res.data.code == 200) {
            //         PopupCommon.notify("success", "删除成功")
            //         self.initPage()
            //         self.dialogClose()
            //     } else {
            //         PopupCommon.notify("error", res.data.message)
            //     }
            // })
        },
        // 初始化事件
        initPage() {
            //   let self = this;
            //   AjaxCommon("/ccdc/cfg/device/device/listByPage", "post", {
            //     userName: this.userName,
            //     deviceStatus: this.status,
            //     deviceType: this.device_type,
            //     pageNo: this.pageNo,
            //     pageSize: this.pageSize,
            //   }).then((res) => {
            //     if (res.data.code == 200) {
            //       self.dataSource = res.data.result.records;
            //       self.pageCount = res.data.result.total;
            //     } else {
            //       PopupCommon.notify("error", res.data.message);
            //     }
            //   });
        }
    },
    mounted() {
        this.initPage()
    }
}
</script>

<style></style>
